﻿#pragma once
#include "ADFGlobal.h"
#include "AsPluginArgsBase.h"

class ADF_EXPORT AsPlugin {
public:
	AsPlugin();
	virtual ~AsPlugin();

protected:
	AsPluginArgsBase* m_pInputArgs;
	AsPluginArgsBase* m_pOutputArgs;

public:
	void setArgs(AsPluginArgsBase* pInput, AsPluginArgsBase* pOutput);
	virtual void beforeCall() {}			// 函数调用前的操作
	virtual void afterCall() {}				// 函数调用后的操作

};

typedef AsPlugin*(*AsPluginCreateFn)();			// 插件的实例化方法
typedef void(*AsPluginFn)(AsPlugin* pPlugin);		// 插件中的函数

